package com.zzkj.util
{
	import com.storage.model.AppModelLocator;
	import com.storage.vo.system.ChildModulePermissionVO;
	
	import mx.collections.ArrayCollection;
	import mx.controls.Button;
	
	public class PermissionUtil
	{
		public function PermissionUtil()
		{
		}
		
		private static var model:AppModelLocator = AppModelLocator.getInstance();
		
		/**
		 * system=true则表示只有超管才能看见
		 * **/
		public static function checkUnit(system:Boolean=false):Boolean{
			
			//超管则返回true
			if(model.currentUser.unit.shortName == "system")
				return true;
			//如果是超级管理员则返回true
			else if(system && model.currentUser.role.roleName=="SuperAdminHidden")
				return true;
			//如果上级单位是超级管理员所在单位（表明是集团公司）,则返回true
			if(model.currentUser.unit.parentUnit!=null &&
				model.currentUser.unit.parentUnit.shortName==="system")
				return true;
			//如果有上级单位则返回false
			else if(model.currentUser.unit.parentUnit&&
				model.currentUser.unit.parentUnit.shortName!="system")
				return false;
			
			return false;
		}

		
		public static function check(menuItemName:String
						,permissionName:String=null,btn:Button=null):Boolean{
			//超管则直接返回true
			if(model.currentUser.role.roleName==="SuperAdminHidden"){
				return true;
			}
			//没有权限则返回false
			if(model.cpDic[menuItemName]==null)
				return false;
			if(permissionName==null){
				permissionName = btn.label;
			}
			var cpa:ArrayCollection = model.cpDic[menuItemName];
			for(var i:Number=0;i<cpa.length;i++){
				var cp:ChildModulePermissionVO = cpa[i];
				if(cp.permission.permissionName==permissionName){
					return true;
				}
			}
			return false;
		}
		

	}
}